home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 23 / AMIGAplus Sonderheft 23 (2000)(Falke)(DE)[!].iso / Updates / Librarys / zee_ini_library / include / libraries / ini_lib.i < prev   
Text File  |  1999-08-01  |  5KB  |  190 lines

  1.     IFND    LIBRARIES_INI_LIB_I
  2. LIBRARIES_INI_LIB_I    SET    1
  3. **
  4. **    $Filename: libraries/ini_lib.i $
  5. **    $Release : 31.0 $
  6. **
  7. **
  8. **
  9. **    (C) Copyright 1996-98 by Basty/Seasons
  10. **        All Rights Reserved
  11. **
  12.  
  13.         IFND    EXEC_TYPES_I
  14.         include    "exec/types.i"
  15.         ENDC    ; EXEC_TYPES_I
  16.  
  17.         IFND    EXEC_LISTS_I
  18.         include    "exec/lists.i"
  19.         ENDC    ; EXEC_LISTS_I
  20.  
  21.         IFND    EXEC_LIBRARIES_I
  22.         include    "exec/libraries.i"
  23.         ENDC    ; EXEC_LIBRARIES_I
  24.  
  25.         IFND    LIBRARIES_DOS_I
  26.         include    "libraries/dos.i"
  27.         ENDC    ; LIBRARIES_DOS_I
  28.  
  29.     LIBINIT
  30.     LIBDEF    _LVOiniAllocPMem
  31.     LIBDEF    _LVOiniFreePMem
  32.     LIBDEF    _LVOiniAllocNameStr
  33.     LIBDEF    _LVOiniFreeNameStr
  34.     LIBDEF    _LVOiniSetString
  35.     LIBDEF    _LVOiniSetNameStr
  36.     LIBDEF    _LVOiniOpenDefault
  37.     LIBDEF    _LVOiniOpenFile
  38.     LIBDEF    _LVOiniOpenFromFH
  39.     LIBDEF    _LVOiniOpenMem
  40.     LIBDEF    _LVOiniClose
  41.     LIBDEF    _LVOiniSaveFile
  42.     LIBDEF    _LVOiniSaveToFH
  43.     LIBDEF    _LVOiniCreateContext
  44.     LIBDEF    _LVOiniFreeContext
  45.     LIBDEF    _LVOiniAddContext
  46.     LIBDEF    _LVOiniRemContext
  47.     LIBDEF    _LVOiniInsertContext
  48.     LIBDEF    _LVOiniDeleteContext
  49.     LIBDEF    _LVOiniCreateContextItem
  50.     LIBDEF    _LVOiniFreeContextItem
  51.     LIBDEF    _LVOiniAddContextItem
  52.     LIBDEF    _LVOiniRemContextItem
  53.     LIBDEF    _LVOiniInsertContextItem
  54.     LIBDEF    _LVOiniDeleteContextItem
  55.     LIBDEF    _LVOiniReadLong
  56.     LIBDEF    _LVOiniReadFloat
  57.     LIBDEF    _LVOiniReadStr
  58.     LIBDEF    _LVOiniReadByteA
  59.     LIBDEF    _LVOiniReadWordA
  60.     LIBDEF    _LVOiniReadLongA
  61.     LIBDEF    _LVOiniReadFloatA
  62.     LIBDEF    _LVOiniReadStrA
  63.     LIBDEF    _LVOiniWriteLong
  64.     LIBDEF    _LVOiniWriteFloat
  65.     LIBDEF    _LVOiniWriteStr
  66.     LIBDEF    _LVOiniWriteByteA
  67.     LIBDEF    _LVOiniWriteWordA
  68.     LIBDEF    _LVOiniWriteLongA
  69.     LIBDEF    _LVOiniWriteFloatA
  70.     LIBDEF    _LVOiniWriteStrA
  71.     LIBDEF    _LVOiniGetContextName
  72.     LIBDEF    _LVOiniGetContextItem
  73.     LIBDEF    _LVOiniGetContextItemData
  74.     LIBDEF    _LVOiniGetContextItemDataA
  75.     LIBDEF    _LVOiniCheckComment
  76.     LIBDEF    _LVOiniGetNumArrays
  77.     LIBDEF    _LVOiniGetArrayLine
  78.     LIBDEF    _LVOiniGetArrayPos
  79.     LIBDEF    _LVOiniGetLong
  80.     LIBDEF    _LVOiniGetFloat
  81.     LIBDEF    _LVOiniGetStr
  82.     LIBDEF    _LVOiniGetByteA
  83.     LIBDEF    _LVOiniGetWordA
  84.     LIBDEF    _LVOiniGetLongA
  85.     LIBDEF    _LVOiniGetFloatA
  86.     LIBDEF    _LVOiniGetStrA
  87.     LIBDEF    _LVOiniPutLong
  88.     LIBDEF    _LVOiniPutFloat
  89.     LIBDEF    _LVOiniPutStr
  90.     LIBDEF    _LVOiniPutByteA
  91.     LIBDEF    _LVOiniPutWordA
  92.     LIBDEF    _LVOiniPutLongA
  93.     LIBDEF    _LVOiniPutFloatA
  94.     LIBDEF    _LVOiniPutStrA
  95.     LIBDEF    _LVOiniStrToInt
  96.     LIBDEF    _LVOiniIntToStr
  97.     LIBDEF    _LVOiniStrToFloat
  98.     LIBDEF    _LVOiniFloatToStr
  99.     LIBDEF    _LVOiniFindContext
  100.     LIBDEF    _LVOiniFindItem
  101.  
  102.     STRUCTURE    iniLibBase,LIB_SIZE
  103.     BPTR    ini_SegList                    * Segment list
  104.     APTR    ini_ExecBase                * ExecBase
  105.     APTR    ini_DOSBase                    * DOSBase
  106.     APTR    ini_MemPool                    * Memory pool for iniAllocPMem()
  107.     APTR    ini_MemSigSem                * Memory pool signal semaphore
  108.     LABEL    ini_SIZEOF
  109.  
  110. * Flags passable to iniReadxxx(), iniGetxxx() and iniFindxxx()
  111.     BITDEF    INI,ContextCase,0            * If set, use case sensitive scan for
  112.                                         * Context names
  113.     BITDEF    INI,ContextItemCase,1        * If set, use case sentitive scan for
  114.                                         * Context item names
  115.  
  116. * Format parameter of iniIntToStr()
  117.  
  118. INI_FORMAT_DEC            EQU    0            * Use decimal with no precedor
  119. INI_FORMAT_DEC_CHAR        EQU    1            * Use decimal with # precedor
  120. INI_FORMAT_HEX            EQU    2            * Use hexadical with $ precedor
  121. INI_FORMAT_HEX_0X        EQU    3            * Use hexadical with 0x precedor
  122. INI_FORMAT_BIN            EQU    4            * Use binary with % precedor
  123. INI_FORMAT_OCT            EQU    5            * Use octal with & precedor
  124. INI_FORMAT_YESNO        EQU    6            * Use No for zero, Yes for all others
  125. INI_FORMAT_YN            EQU    7            * Use N for zero, Y for all others
  126. INI_FORMAT_TRUEFALSE    EQU    8            * Use False for zero, True for others
  127. INI_FORMAT_ONOFF        EQU    9            * Use Off for zero, On for others
  128. INI_UNSIGNED            EQU    $80000000    * Add this to the others to get
  129.                                         * unsigned values
  130.  
  131. * Floating point format of iniStrToFloat() and iniFloatToStr()
  132. * Upper word: Integer part.
  133. * Lower word: 1/65536 of value.
  134. * Example:
  135. * $00048000 means 4.5 ($8000/$10000 = 0.5)
  136. * $fffc0000 means -4.0 (if treated as signed)
  137. * $fffc8000 means -3.5 (if treated as signed)
  138.  
  139. * Format parameter of iniFloatToStr()
  140.  
  141. INI_FLOAT_FORMAT_DEC    EQU    0            * Use decimal with point separator
  142. INI_FLOAT_UNSIGNED        EQU    $80000000    * Add this to the others to get
  143.                                         * unsigned values
  144.  
  145. * The following structure is for each file opened by iniOpenFile() or
  146. * iniOpenMem().
  147.  
  148.     STRUCTURE    iniFile,0                * ini.library file handle
  149.     STRUCT    inif_Context,MLH_SIZE        * Linked list of the contexts.
  150.     STRUCT    inif_PreLines,MLH_SIZE        * Lines before the first context.
  151.     LABEL    inif_SIZEOF
  152.  
  153. * The following structure is for each context in the .INI file.
  154.  
  155.     STRUCTURE    iniContext,MLN_SIZE        * ini.library context chunk
  156.     STRUCT    inic_Lines,MLH_SIZE            * Lines belonging to this context
  157.     APTR    inic_ContextLine            * Context line
  158.     LABEL    inic_SIZEOF
  159.  
  160. * The following structure is for each line in the .INI file.
  161.  
  162.     STRUCTURE    iniContextItemLine,MLN_SIZE        * ini.library config line
  163.                                         * chunk
  164.     APTR    inil_Line                    * Line contents (incl. CR/LF)
  165.     LABEL    inil_SIZEOF
  166.  
  167. CALLINI    MACRO
  168.     jsr    _LVO\1(a6)
  169.     ENDM
  170.  
  171. CALLINIJ    MACRO
  172.     jmp    _LVO\1(a6)
  173.     ENDM
  174.  
  175. CALLINIB    MACRO
  176.     move.l    _INIBase,a6
  177.     CALLINI    \1
  178.     ENDM
  179.  
  180. CALLINIBJ    MACRO
  181.     move.l    _INIBase,a6
  182.     CALLINIJ    \1
  183.     ENDM
  184.  
  185. ININAME    MACRO
  186.     dc.b    'ini.library',0
  187.     ENDM
  188.  
  189.     ENDC    ; LIBRARIES_INI_LIB_I
  190.